package com.discursive.cjcook.guava.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import com.google.common.io.CountingInputStream;
import com.google.common.io.CountingOutputStream;
public class MeteredExample {
public static void main(String[] args) throws Exception {
InputStream fis = new FileInputStream( new File("data", "large.txt") );
CountingInputStream cis = new CountingInputStream( fis );
while( cis.read() != -1 ) {
long bytesRead = cis.getCount();
if( bytesRead % 50 == 0 ) {
System.out.printf( "Read %d bytes...\n", bytesRead );
}
}
OutputStream fos = new FileOutputStream( new File("output.dat" ) );
CountingOutputStream cos = new CountingOutputStream( fos );
String testString = "TEST STRING";
cos.write( testString.getBytes( Charset.defaultCharset() ) );
System.out.printf( "Just wrote %d bytes to output.dat", cos.getCount() );
}
}